5716
18932
そのため、構造体のリストに関してlist :: sort()の適切な使用法を理解するのに問題があります。関連するコードは次のとおりです。
構造体の学生
{{
char firstnm [20]、
lastnm [20];
int id、
グレード;
};
list  sList;
//不適切なコード...
cout << "自分の名前、ID、グレードを入力してください。(例:myfirst mylast 0 12)\ n";
cin >> data.firstnm >> data.lastnm >> data.id >> data.grade;
sList.push_back(data);
sList.sort();
私が解決しようとしている問題は、sList.sort()を使用してIDでソートすることです。ただし、それをlist :: sort()に適切に渡す方法がわかりません。助け/時間をありがとう!
編集:解決策は単にこれを私の構造に追加することでした
ブール演算子<(const student&cmp)const {
id 
                                
std :: sortを見てください。 (https://en.cppreference.com/w/cpp/algorithm/sort)その関数には複数の定義があり、並べ替えるものを指定できる定義があります。
また、その投稿を見てください、私はそれがあなたが必要としているものだと思います:https://stackoverflow.com/a/21234017/6663947
編集:
それはコンパレータの例です:
sList.sort([](const student&a、const student&b){return a.id 
void sort(Compare comp);
リスト内の学生オブジェクトをキーIDに従って昇順で並べ替えるとします。ユーザー定義の学生クラスのoperator <を次のように定義できます。
ブール演算子<(student const&a、student const&b){
a.id